package com.lagou.no1

object ChangeBeer {
    def change(cap_num:Int, bottle_num:Int,ans:Int):Int = {
        //当瓶子和瓶盖数小于各自能置换的数量时，递归结束，返回瓶子数
        if(cap_num < 5 && bottle_num < 3)
            return ans
        //用瓶盖换到的啤酒数
        var capChange = cap_num / 5
        //用空瓶置换到的啤酒数
        var bottleChange = bottle_num / 3

        //剩余的瓶盖数
        var capLeft = cap_num % 5
        //剩余的空瓶数
        var bottleLeft = bottle_num % 3

        //新置换到的啤酒又会产生瓶盖和空瓶，与剩余的啤酒瓶盖相加，继续调用递归方法
        change(capChange + bottleChange + capLeft,capChange + bottleChange + bottleLeft,capChange + bottleChange + ans)

    }

    def main(args: Array[String]): Unit = {
        println(s"100元可以喝到${50 + change(50,50,0)}瓶酒")
    }
}
